A Bloom filter is a data structure used for probabilistic representation of a data set. Membership queries, to a Bloom filter, check if an element is a member of the data set. A Bloom filter can incorrectly recognizes an element to be a member of a set (false positive). However in most cases, such false positives are an acceptable tradeoff compared to reduced data storage size and faster lookup time when using a Bloom filter. Bloom filters have been used in database applications to store large amounts of static data and allow reduction in the time it takes to lookup data from a slow storage device to faster main memory.
A cache is a component utilized in computing devices. A cache transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere, such as in main memory. If requested data is contained in the cache (cache hit), this request can be served by reading the cache, which is generally faster than main memory. Otherwise (cache miss), the data has to be recomputed or fetched from its original storage location (e.g., main memory), which is comparatively slower. Hence, the greater the number of requests that can be served from the cache, the faster the overall system performance becomes.